package com.spsoft.vatoutinv.model.vo.matchflow;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.spsoft.vatoutinv.annotation.Translate;
import com.spsoft.vatoutinv.constants.CommonConstant;
import com.spsoft.vatoutinv.constants.DictConstant;
import com.spsoft.vatoutinv.constants.TranslateConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 发票信息查询页面-分页查询返回VO
 *
 * @author : chenxudong
 * @date : 2024/6/25 11:17
 */
@Data
@ApiModel(value = "发票信息查询页面-分页查询返回对象")
public class VmsMatchInvoicePageVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Long oidid;

    /**
     * 发票状态
     */
    @ApiModelProperty(value = "发票状态")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_FPZT)
    private String fpzt;

    /**
     * 发票号码
     */
    @ApiModelProperty(value = "发票号码")
    private String fphm;

    /**
     * 发票类型
     */
    @ApiModelProperty(value = "发票类型")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_FPLX)
    private String fplx;

    /**
     * 购买方识别号
     */
    @ApiModelProperty(value = "购买方识别号")
    private String gmfsbh;

    /**
     * 购买方名称
     */
    @ApiModelProperty(value = "购买方名称")
    private String gmfmc;

    /**
     * 合计金额
     */
    @ApiModelProperty(value = "合计金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal hjje;

    /**
     * 合计税额
     */
    @ApiModelProperty(value = "合计税额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal hjse;

    /**
     * 价税合计
     */
    @ApiModelProperty(value = "价税合计")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal jshj;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String bz;

    /**
     * 开票日期
     */
    @ApiModelProperty(value = "开票日期")
    @Translate(type = TranslateConstant.DATE, format = CommonConstant.DATE_FORMAT_14)
    private Date kprq;

    /**
     * 数据来源
     */
    @ApiModelProperty(value = "数据来源")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_SJLY)
    private String sjly;

    /**
     * 对应红字信息编码
     */
    @ApiModelProperty(value = "对应红字信息编码")
    private String dyhzxxbm;

    /**
     * 对应蓝字发票号码
     */
    @ApiModelProperty(value = "对应蓝字发票号码")
    private String dylzfphm;
}
